package com.ps.bicyclecharging.mapper;

import com.ps.domain.Account;
import com.ps.domain.Breakdown;
import com.ps.domain.Config;
import com.ps.domain.Recharge;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface ChargingMapper {



    /**
     * 新增金额变动流水
     * @param recharge
     */
    void addRecharge(Recharge recharge);


    /**
     * 根据用户id和流水类型查询账户流水记录
     * @Param uid 用户id
     */
    List<Recharge> queryRechargeRecords(long uid,String type);


    /**
     * 根据用户id查用户账户信息
     */
    Account queryAccountByUid(long uid);


    /**
     * 设置免密支付
     * @Param id 用户id
     * @Param type 1.免密支付， 2.密码支付
     */
    void densityFree(long id, String type);


    /**
     * 根据用户id修改用户押金
     * @Param uid 用户id
     */
    void updateDeposit(long uid, double deposit);


    /**
     * 根据账户id查账户信息
     */
    Account queryAccountById(long id);


    /**
     * 根据账户id修改账户余额
     */
    void updateBalance(long id, double money);

    /**
     * 根据计费方式查询配置信息
     *      计费方式 0.总说明（remark字段对应 - 计费规则说明）， 1.起步价， 2.半小时计费
     */
    Config queryConfigByBillingPlane(String billingPlan);

    /**
     * 根据用户id修改支付密码
     */
    void updatePayPswByUid(long uid, String password);

    /**
     * 根据用户id查充值记录（包括充值余额、充值押金）
     */
    List<Recharge> queryRecharges(long id);

    /**
     * 根据用户id查支付记录
     */
    List<Recharge> queryPayRecords(long id);


    /**
     * 根据用户id查流水记录
     */
    List<Recharge> queryAllRechargesByUid(long uid);
}

